package fastClient;

import java.util.Scanner;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import com.alibaba.fastjson.JSONObject;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import protocol.Header;
import protocol.IOMessage;
import protocol.MessageType;

public class ChatClient{

	public static ChannelHandlerContext ctx;
	
	public  void sendMes(String mes){
		
		if(ctx == null){
			System.out.println("ctx == null !!!");
			return;
		}
		IOMessage message = new IOMessage();
		Header header = new Header();
		header.setType(MessageType.CHAT_REQ.value());
		message.setHeader(header);
		
		JSONObject mesJson = new JSONObject();
		mesJson.put("from", "friend_1");
		mesJson.put("to", "friend_2");
		mesJson.put("content", mes);
		
		message.setBody(mesJson.toJSONString());
		ctx.writeAndFlush(message);
	}
	
	public static void main(String[] args) throws Exception{

		//第一步，用户登录
		//第一个参数：用户名、第二个参数：密码
		//第一次测试用 用户名：friend_1 , 密码：123
		
		//app端可以调用 nettyclient 传入用户名、密码
		//app必须传入 地址 和 端口，否则socket的端口会变，不利于服务端保存客户端内容
		new Thread(new NettyClient("friend_1", "123")).start();
		
		ChatClient chat = new ChatClient();
		
		//第二步，mes代表将要发送的信息
		String mes = "";
		
		//第三步，传入mes
		chat.sendMes(mes);
		
	}
}
